1. Field of the Invention
The present invention relates to an information processing apparatus having a virtual machine operating environment where a plurality of virtual machines can operate, a method of controlling therefor, and a program.
2. Description of the Related Art
Along with the spread of network environments, printer apparatuses and MFPs (Multi-Function Peripherals) connectable to a network have come along. In a standard office environment, a plurality of users share a plurality of MFPs.
In such an environment, even when a job is unexecutable in a given device, it may be executable in another device on the network. Hence, a job transfer technique of transferring a job to another device and executing it has been proposed (e.g., Japanese Patent Laid-Open No. 7-121330).
To transfer a job using this job transfer technique, it is necessary to convert it into some static intermediate data.
During execution, a job stores temporary data halfway through calculation in a temporary file on a hard disk or in a memory area managed by the OS. It is therefore impossible to simply transfer a job that is being executed at an arbitrary timing using only the job transfer technique.
For example, to transfer a job because of paper-out or toner-out, the job is converted into intermediate data and transferred after it is found out that the job is unexecutable. However, the above-described job transfer technique cannot transfer a job if it should be transferred because, e.g., shortage of the memory capacity disables even calculation for intermediate data conversion.
In this case, data is temporarily discarded midway through the calculation, and the calculation is performed again at the transfer destination. Since the calculation must be done twice because of the data discard, printing takes a time more than necessary.
If calculation in progress is, e.g., rendering of complex PDL data, a calculation time of several ten minutes goes to waste.
Virtual machine techniques represented by VMware and xen are becoming common for the purpose of, e.g., decreasing the number of servers.
A virtual machine technique provides a resume fiction which makes it possible to temporarily stop all programs including an OS running on a device, store the stop state (data on the CPU register and data on the RAM) as the state file of a virtual machine, and resume the virtual machine from this stop state.
Combining the above-described job transfer technique and the resume function of the virtual machine technique allows to transfer a job during execution.
More specifically, a job which is being executed can be transferred by temporarily stopping the job during operation for each virtual machine, transferring the state file of the virtual machine, and resuming it at the transfer destination.
However, to cause the virtual machine to actually resume the operation, a storage such as a hard disk to be accessed by the virtual machine is necessary. Transferring, via a network, hard disk data of about 100 Gbytes required for resuming a virtual machine is not realistic from the viewpoint of the transfer time and the storage capacity required at the transfer destination.
Generally, to transfer a virtual machine, a storage is prepared on a server on a network in advance so that the virtual machine can access it using a mechanism such as an NFS (Network File System) provided by the OS.
However, an MFP frequently reads out or writes image data as a temporary file of image processing from or in a storage during print processing. This generates a large quantity of traffic between the CPU and the storage. The speed of traffic is directly linked with the print speed.
In this case, if a storage exists on the network, the print speed decreases. For this reason, an arrangement which always places a storage on a network poses a problem from the viewpoint of print performance.